// 获取当前窗口|当前元素的滚动距离
import {ref,onMounted,onBeforeUnmount} from 'vue';
function useScroll(obj){
    // 创建一个响应式的值
    const top = ref(0);
    onMounted(()=>{
        // 监听滚动
        if(obj){
            // 如果有obj监听obj的滚动，没有就监听window的滚动
            // obj是一个引用对象获取dom节点添加 value
            obj.value.addEventListener("scroll",updateTop)
        }else{
            window.addEventListener("scroll",updateTop)
        }
        // console.log("挂载了");
    })
    function updateTop(){
        // 更新top值,如果有就返回obj的scrollTop没有就返回文档对象的scrollTop
        top.value = parseInt(obj?obj.value.scrollTop:document.documentElement.scrollTop);
        // console.log("挂载了",el.scrollTop)
    }
    onBeforeUnmount(()=>{
        // 组件将要卸载我们移除scroll事件
        if(obj){
            obj.value.removeEventListener("scroll",updateTop)
        }else{
            window.removeEventListener("scroll",updateTop)
        }
    })

    return top;
    
}
export default useScroll;